import json

from langchain_core.prompts import PromptTemplate

extract_info_prompt = PromptTemplate(
    template ="""你是一名智能助手，我将给你提供一款{product_type}商品的商品描述与商品规格信息，请你根据这些信息提取以下信息：
1、判断商品由下列哪些材料组成：
```plastic(塑料)、fabric(布)、wood(木头)、metal(铁)、polycarbonate(聚碳酸酯纤维)、aluminum(铝)、carbon fiber(碳纤维)、neoprene(橡胶)、tpu(热塑性聚氨酯)、silico(矽)```

2、判断商品具有以下哪些特性：
dust resistant(防尘)、dirt resistant(防脏)、shock resistant(防震)、built-in stand(内置支架)、car/bike mount(骑车/自行车支架)、sweat resistant(防汗)、card holder(卡片收纳)、notification screen(通知屏幕)、water resistant(防水)、built-in keyboard(内置键盘)

3、判断商品适用的手机品牌
applicable_mobile_brand(适用的手机品牌)

将信息提取后，按照以下json格式例子返回。注意只要返回json即可，不要给出思考过程与其他信息！！！
返回格式例子如下：
{{
    "meteria":{{
        "plastic":false,
        "fabric":false,
        "wood":false,
        "metal":false,
        "others":false,
        "polycarbonate":false,
        "aluminum":false,
        "carbon fiber":false,
        "neoprene":true,
        "tpu":true,
        "silicon":true
    }},
    "applicable_mobile_brand":"Samsung",
    "case_feature":{{
        "dust resistant":true,
        "dirt resistant":true,
        "shock resistant":true,
        "built-in stand":false,
        "car/bike mount":false,
        "sweat resistant":true,
        "card holder":false,
        "notification screen":false,
        "water resistant":false,
        "built-in keyboard":false，
        "others":false
    }}
}}

商品描述信息：
```
{description}
```

商品规格信息：
```
{specifications}
```
""",
    input_variables = ["description", "specifications", "product_type"]
)

product_type_prompt = PromptTemplate(
    template ="""请根据我提供的商品的标题信息，判断商品是什么类别。商品的类别只可以从下列选项中选择：
1、phone case
2、phone screen protector
3、other

商品的标题信息：
{title}

注意！！！返回值只需要返回商品类别名称，禁止返回思考过程等其他信息！！！
""",
    input_variables = ["title"]
)

case_des_template = {
    "meteria":{
        "plastic":False,
        "fabric":False,
        "wood":False,
        "metal":False,
        "others":False,
        "polycarbonate":False,
        "aluminum":False,
        "carbon fiber":False,
        "neoprene":True,
        "tpu":True,
        "silicon":True
    },
    "applicable_mobile_brand":"Samsung",
    "case_feature":{
        "dust resistant":True,
        "dirt resistant":True,
        "shock resistant":True,
        "built-in stand":False,
        "car/bike mount":False,
        "sweat resistant":True,
        "card holder":False,
        "notification screen":False,
        "water resistant":False,
        "built-in keyboard":False
    }
}




